package com.Dec_Thirteen;

/**
 * 791. 自定义字符串排序
 * 给定两个字符串 order 和 s 。order 的所有单词都是 唯一 的，并且以前按照一些自定义的顺序排序。
 *
 * 对 s 的字符进行置换，使其与排序的 order 相匹配。更具体地说，如果在 order 中的字符 x 出现字符 y 之前，那么在排列后的字符串中， x 也应该出现在 y 之前。
 *
 * 返回 满足这个性质的 s 的任意排列 。
 *
 *  
 *
 * 示
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode.cn/problems/custom-sort-string
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 *
 * 2022/11/13 11:48
 */

public class Solution791 {

    public String customSortString(String order, String s) {
        StringBuilder sb=new StringBuilder();
        int[] word=new int[26];
        for (int i = 0; i < s.length(); i++) {
            word[s.charAt(i)-'a']++;
        }
        for (int i = 0; i < order.length(); i++) {
            while (word[order.charAt(i)-'a']-->0)
            {
                sb.append(order.charAt(i));
            }
        }
        for (int i = 0; i < 26; i++) {
            while (word[i]-->0)
            {
                sb.append((char) (i+'a'));
            }
        }
        return sb.toString();
    }

    public static void main(String[] args) {
        Solution791 solution791=new Solution791();
        System.out.println(solution791.customSortString("cbafg","abcd"));
    }

}
